<html>
    <head>
        <title>作业排队</title>
    </head>
    <body>
        <script>
             /*
                        六、将作业项排队   IBackgroundJobManger(后台作业管理器)  

                               现在，你可以使用 IBackgroundJobManger服务队电子邮件发送作业进行排队：
                                            
                                            // 一个应用服务类
                                            public class RegistrationService : ApplicationService
                                            {
                                                private readonly IBackgroundJobManager _backgroundJobManager;

                                                public RegistrationService(IBackgroundJobManager backgroundJobManager)
                                                {
                                                    _backgroundJobManager = backgroundJobManager; // 注入后台作业管理器
                                                }

                                                // 用户注册逻辑
                                                public async Task RegisterAsync(string userName, string emailAddress, string password)
                                                {
                                                    // 创建一个作业数据对象，直接进入队列排队
                                                    await _backgroundJobManager.EnqueueAsync(
                                                        new EmailSendingArgs 
                                                        {
                                                            EmailAddress = emailAddress,
                                                            Subject = "You've successfully registered!",
                                                            Body = "..."
                                                        }
                                                    );
                                                }
                                            }

                                这里注入了 IBackgroundJobManager 服务并使用其 EnqueueAsync 方法将新作业添加到队列中。


                                ★、Enqueue() 方法获取一些可选参数来控制后台作业：
                                    
                                       1、priority 优先级，用于控制作业项的优先级。

                                            它获取一个 "BackgroundJobPriority枚举"，该枚举具有Low、BelowNornal、Normal、aboveNormal 和 Height 枚举值。

                                       2、delay 延迟，用于在第一次尝试之前等待一段时间 (TimeSpan类型)
                    */
        </script>
    </body>
</html>